package _99练习;

import java.util.Comparator;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;

import _04Set接口.Student;

// 10
// 让用户输入10个学生的学号 姓名 语文成绩 数学成绩 英语成绩 放入相应的集合容器
// 1) 按照以下规则排序的集合容器
// * 按照语文成绩从第到高排序
// 2) 按照以下规则排序的集合容器
// * 先按照总分从高到底排序
// * 如果总分一致，按照语文成绩从高到底排序
// * 如果语文一致，按照数学程序从高到底排序
// * 如果数学也一致，按照学号从低到高排序

// Comparator 接口
// 创建讲一个 实现了 Comparator 接口 匿名内部类 对象

public class StudentAchievementDemo {
	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

		Set<StudentAchievement> sa = new TreeSet<StudentAchievement>(new Comparator<StudentAchievement>() {

			@Override
			public int compare(StudentAchievement o1, StudentAchievement o2) {

				if (o1.chinese + o1.english + o1.maths < o2.chinese + o2.english + o2.maths) {
					return 1;

				} else if (o1.chinese + o1.english + o1.maths == o2.chinese + o2.english + o2.maths) {
					if (o1.chinese < o2.chinese) {
						return 1;
					} else if (o1.chinese == o2.chinese) {
						if (o1.maths < o2.maths) {
							return 1;
						} else if (o1.maths == o2.maths) {
							if (o1.num < o2.num) {
								return -1;
							} else if (o1.num == o2.num) {
								return 0;
							} else {
								return -1;
							}
						} else {
							return -1;
						}
					} else {
						return -1;
					}

				} else {
					return -1;
				}
			}
		});

		for (int i = 0; i < 5; i++) {

			System.out.print("请输入学号：");
			int num = sc.nextInt();
			System.out.print("请输入姓名：");
			String name = sc.next();
			System.out.print("请输入语文成绩：");
			int chinese = sc.nextInt();
			System.out.print("请输入数学成绩：");
			int maths = sc.nextInt();
			System.out.print("请输入英语成绩：");
			int english = sc.nextInt();

			sa.add(new StudentAchievement(num, name, chinese, maths, english));

		}

		System.out.println(sa);

	}
}
